Video displays are used in computer systems to present visual images to a user based on video data provided by a computer or other processing device. The display allows a user to effectively receive information from and to interact with application programs running in the system. Such computer systems and displays are employed in numerous business, consumer, entertainment, and industrial settings, including automated industrial control systems.
Displays are available in a variety of forms, such as color or monochrome, flat panel, liquid crystal display (LCD), electro-luminescent (EL), plasma display panels (PDP), vacuum fluorescent displays (VFD), cathode ray tube (CRT), and may be interfaced to a computer system in analog or digital fashion. The display is provided with video data frame by frame, which is scanned onto the display screen according to a scanning method which may include progressive scan, dual scan, interleave scan, or interlaced scanning. The cost of displays varies with the display resolution and quality. For example, color displays generally cost more than monochrome displays. The number of pixels, as well as the number of available colors per pixel (bits per pixels) also affects display cost. The cost of a computer display may be a large percentage of the overall computer system cost. As the application of computer system displays varies greatly, displays are accordingly provided in a variety of price ranges.
Interfacing between a computer or other processing device and a display is ordinarily accomplished using a video controller, also variously referred to as graphics adapter, graphics controller, video display adapter, display controller, and display adapter. The screen resolution on a PC is determined by the video controller, which may be plugged into one of the computer's expansion slots. In conventional systems, the display must also be able to adjust to the resolution of the video controller. Common video controllers come with their own drivers for an operating system, which are installed after the video controller is installed. The driver allows the operating system to display its video output at a certain number of resolutions and colors. The video controller may include a raster engine which rasterizes video data from a frame buffer into a format that the display can accept for rendering to a user.
Raster engines typically obtain image data from a frame buffer in memory via a bus, wherein the frame buffer may be in main memory or in a separate display memory. The bus may provide access between the raster engine and the main memory, as well as between other devices in a computer system. In this shared system bus configuration, situations may arise in which the raster engine requires display image data from the frame buffer, and yet the raster engine cannot timely obtain such data due to contention with other devices using the common or shared bus. As a result, the raster engine may become empty, for example, during excessive bus loading conditions. The video display interfaced by the raster engine may exhibit undesirable visual effects under these conditions. For example, the display may suffer from visual defects such as jittering, shifting, flashing, and blank-outs in the displayed video image. Such undesirable visual defects are also experienced when a raster engine on an isolated or dedicated bus becomes starved for video data. Thus, there is a need for improved methods and apparatus for preventing or minimizing empty raster engine conditions, and the undesirable display effects associated therewith.